﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MakeIT.Deo.Negocios;
using System.Data.Entity;
using System.IO;

namespace MakeIT.Deo.Apresentacao
{
    public partial class FileManager : System.Web.UI.Page
    {
        usuario usuarioVO = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            usuarioVO = (usuario)this.Session["userActive"];

            if (!IsPostBack)
            {
                setGrvPublicosDataSource();
            }
        }
    
        protected void ProcessUploadPublico(object sender, EventArgs e)
        {
            // upload da imagem
            if (this.FileUpload1.PostedFile.FileName.Length > 0)
            {

                //Recupera dados
                DocumentoBO documentoBO = new DocumentoBO();
                documento documentoVO = new documento();

                Stream st = FileUpload1.PostedFile.InputStream;
                byte[] fb = new byte[st.Length];

                st.Read(fb, 0, int.Parse(st.Length.ToString()));
                //fb = FileUpload1.GetBytesFromStream(st);
                // ScriptManager.RegisterClientScriptBlock(AsyncFileUpload1, AsyncFileUpload1.GetType(), "img", "top.document.getElementById('imgUpload').src='image.jpg';", true);

                documentoVO.Binario = fb;

                this.LabelMensagem.Text = fb.Length + " bytes enviados";

                documentoVO.Cadastro = DateTime.Today;
                documentoVO.CadastradoPor = usuarioVO.User;
                documentoVO.Edicao = DateTime.Today;
                documentoVO.EditadoPor = usuarioVO.User;
                documentoVO.Comentario = this.TextBoxComentario.Text;
                documentoVO.DataVigenciaInicio = DateTime.Parse(this.txtCadDtInicio.Text);
                documentoVO.DataVigenciaFim = DateTime.Parse(this.txtCadDtFim.Text);
                documentoVO.Mime = FileUpload1.PostedFile.ContentType;
                documentoVO.NomeArquivo = FileUpload1.PostedFile.FileName;
                documentoVO.TamanhoArquivo = FileUpload1.PostedFile.ContentLength;

                //Chama metodo para salvar ou criar novo registro
                documentoBO.SalvarDocumento(documentoVO, true);
                setGrvPublicosDataSource();
                Util.ExibeAlert(this, "Registro salvo com sucesso!");


            }
        }

        protected void setGrvPublicosDataSource()
        {
            DocumentoBO documentoBO = new DocumentoBO();
            this.grvPublicos.DataSource = documentoBO.RecuperaDocumentos(true);
            this.grvPublicos.DataBind();
        }

        protected void imgbExcluir_Click(object sender, ImageClickEventArgs e)
        {
            // Declara objetos
            DocumentoBO documentoBO = null;
            documento documentoVO = null;

            try
            {
                // cria objeto
                documentoBO = new DocumentoBO();
                documentoVO = new documento();

                //
                documentoVO.IdDocumento = int.Parse(((ImageButton)sender).CommandArgument);

                //Chama metodo para salvar ou criar novo registro
                documentoBO.DeletaDocumento(documentoVO);

                // Exibe msg de sucesso ao salvar registro
                Util.ExibeAlert(this, "Documento excluido com sucesso!");
                setGrvPublicosDataSource();
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

    }
}
